package com.hljx.mapper.sys;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hljx.dto.CreateOrUpdateInfoDTO;
import com.hljx.dto.WorkloadTargetAdministrationCopyDTO;
import com.hljx.dto.WorkloadTargetAdministrationDTO;
import com.hljx.dto.WorkloadTargetAdministrationInsertDTO;
import com.hljx.entity.WorkloadTargetAdministration;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hljx.vo.ProjectTargetVO;
import com.hljx.vo.WorkloadTargetAdministrationDeptProjectVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <p>
 * 工作量指标管理主表 Mapper 接口
 * </p>
 *
 * @author hxc
 * @since 2023-09-18
 */
@Mapper
public interface WorkloadTargetAdministrationMapper extends BaseMapper<WorkloadTargetAdministration> {


    /*
    * 分页模糊查询
    * */
    IPage<WorkloadTargetAdministrationDeptProjectVO> listByPage(@Param("page") Page<WorkloadTargetAdministrationDeptProjectVO> page, @Param("dto") WorkloadTargetAdministrationDTO dto);

    /*
    * 编辑查询
    * */
    List<WorkloadTargetAdministrationDeptProjectVO> listUpdateWorkloadTargetAdministrationInfo(@Param("period")String period,@Param("id") Long id);

    /*
    * 编辑回显
    * */



    /*
      新增工作量指标管理
     */
    int insertWorkloadTarget(@Param("period") String period, @Param("insertDTO") WorkloadTargetAdministrationInsertDTO insertDTO, @Param("localDate")LocalDateTime localDateTime,@Param("createBy")String createBy);

    /*
     * 工作量指标管理主表判重
     * */
    int distinct(@Param("insertDTO")WorkloadTargetAdministrationInsertDTO insertDTO);

    /*
     * 根据code查询主键id
     * */
    Long byCodeGetId(String period,String code);

    /*
     * 继承
     * */
    int inheritWorkloadTargetAdministration(@Param("copyDTO")WorkloadTargetAdministrationCopyDTO copyDTO,@Param("createBy")String createBy);

    /*
     * 清空表中数据
     * */
    int truncateWorkloadTargetAdministration(String tableName);

    /*
     * 删除
     * */
    int deleteByWorkloadTargetAdministrationId(@Param("period") String period, @Param("id") long id, @Param("createOrUpdateInfoDTO")CreateOrUpdateInfoDTO createOrUpdateInfoDTO);




    List<ProjectTargetVO> searchAllByTime(String period);
    List<WorkloadTargetAdministration>  listByPerid(String period);



}
